'use strict';

new Vue({
  el: '#root',

  data: {
    years: [],
    months: [],
    days: [],
    forumNav: 0,
    time: {},
    lunar: {},
    isShowShopModal: false,
    isAuth: false
  },

  created: function created() {
    var _this = this;

    this.years = this.getBornYears();
    this.months = this.getBornMonths();
    this.days = this.getBornDays();
    this.setTime();
    setInterval(function () {
      return _this.setTime();
    }, 30000);
  },


  filters: {
    leftPad: function leftPad(str) {
      return _leftPad(str, 2, '0');
    }
  },

  methods: {
    onClickShopModalClose: function onClickShopModalClose() {
      this.isShowShopModal = false;
    },
    onClickShopItem: function onClickShopItem(isAuth) {
      this.isAuth = isAuth;
      this.isShowShopModal = true;
    },
    getBornYears: function getBornYears() {
      var currentYear = new Date().getFullYear();
      var years = [];
      for (var i = currentYear; i >= 1900; i--) {
        years.push(i);
      }
      return years;
    },
    getBornMonths: function getBornMonths() {
      var months = [];
      for (var i = 1; i <= 12; i++) {
        months.push(i);
      }
      return months;
    },
    getBornDays: function getBornDays() {
      var days = [];
      for (var i = 1; i <= 31; i++) {
        days.push(i);
      }
      return days;
    },
    setTime: function setTime() {
      var date = new Date();
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var day = date.getDate();
      var hours = date.getHours();
      var minutes = date.getMinutes();
      var lunar = LunarCalendar.calendar(year, month).monthData[day - 1];
      this.time = { year: year, month: month, day: day, hours: hours, minutes: minutes };
      this.lunar = lunar;
    },
    onClickForumNav: function onClickForumNav(id) {
      this.forumNav = id;
    }
  }
});

var cache = ['', ' ', '  ', '   ', '    ', '     ', '      ', '       ', '        ', '         '];

function _leftPad(str, len, ch) {
  // convert `str` to a `string`
  str = str + '';
  // `len` is the `pad`'s length now
  len = len - str.length;
  // doesn't need to pad
  if (len <= 0) return str;
  // `ch` defaults to `' '`
  if (!ch && ch !== 0) ch = ' ';
  // convert `ch` to a `string` cuz it could be a number
  ch = ch + '';
  // cache common use cases
  if (ch === ' ' && len < 10) return cache[len] + str;
  // `pad` starts with an empty string
  var pad = '';
  // loop
  while (true) {
    // add `ch` to `pad` if `len` is odd
    if (len & 1) pad += ch;
    // divide `len` by 2, ditch the remainder
    len >>= 1;
    // "double" the `ch` so this operation count grows logarithmically on `len`
    // each time `ch` is "doubled", the `len` would need to be "doubled" too
    // similar to finding a value in binary search tree, hence O(log(n))
    if (len) ch += ch;
    // `len` is 0, exit the loop
    else break;
  }
  // pad `str`!
  return pad + str;
}